Variable-length codes in conformity with MPEG-4 standards, H.264, etc. have various code lengths. It is therefore impossible to uniquely identify the header position of each code in an input bitstream. Because of this, a sequential process is required to decode variable-length codes of an input bitstream one by one from the header and then detect the header position of a succeeding code. Accordingly, if many variable-length codes are included in an input bitstream, it takes many cycles to decode all the codes.
There have been proposed several techniques for decoding sequential variable-length codes contained in an input bitstream in parallel in order to reduce the number of cycles. For example, there has been proposed a technique for decoding two or more of variable-length codes on average in one cycle by performing pipeline decoding process. The technique is, however, disadvantageous in that the frequency that can be set for one cycle is not so high and the decoding efficiency could be lowered depending on the type of variable-length codes.
Another technique is to collectively decode combinations of sequential variable-length codes contained in an input bitstream, by enlarging size of a table for converting variable-length codes into coded data. The technique is, however, disadvantageous in that a large-scale table has to be prepared beforehand and the time for searching this table becomes long, hence it is impossible to raise an operational frequency.